﻿using System;
using System.ComponentModel;
using System.Configuration;

namespace mki.Backup.Objects
{
	/// <summary>
	/// Represents the CustomConfigurationElementCollection class
	/// </summary>
	public class CustomConfigurationElementCollection : ConfigurationElementCollection
	{
		#region Properties (11)

		// Public Properties (11) 

		[Browsable(false)]
		public new int Count { get { return base.Count; } }

		[Browsable(false)]
		public new Configuration CurrentConfiguration { get { return base.CurrentConfiguration; } }

		[Browsable(false)]
		public new ElementInformation ElementInformation { get { return base.ElementInformation; } }

		[Browsable(false)]
		public new Boolean EmitClear { get { return base.EmitClear; } set { base.EmitClear = value; } }

		[Browsable(false)]
		public new bool IsSynchronized { get { return base.IsSynchronized; } }

		[Browsable(false)]
		public new ConfigurationLockCollection LockAllAttributesExcept { get { return base.LockAllAttributesExcept; } }

		[Browsable(false)]
		public new ConfigurationLockCollection LockAllElementsExcept { get { return base.LockAllElementsExcept; } }

		[Browsable(false)]
		public new ConfigurationLockCollection LockAttributes { get { return base.LockAttributes; } }

		[Browsable(false)]
		public new ConfigurationLockCollection LockElements { get { return base.LockElements; } }

		[Browsable(false)]
		public new Boolean LockItem { get { return base.LockItem; } set { base.LockItem = value; } }

		[Browsable(false)]
		public new Object SyncRoot { get { return base.SyncRoot; } }

		#endregion Properties

		#region Methods (2)

		// Protected Methods (2) 

		/// <summary>
		/// When overridden in a derived class, creates a new <see cref="T:System.Configuration.ConfigurationElement"/>.
		/// </summary>
		/// <returns>
		/// A new <see cref="T:System.Configuration.ConfigurationElement"/>.
		/// </returns>
		protected override ConfigurationElement CreateNewElement()
		{
			throw new NotImplementedException();
		}

		/// <summary>
		/// Gets the element key for a specified configuration element when overridden in a derived class.
		/// </summary>
		/// <returns>
		/// An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
		/// </returns>
		/// <param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for. </param>
		protected override object GetElementKey(ConfigurationElement element)
		{
			throw new NotImplementedException();
		}

		#endregion Methods
	}
}
